#include "settings.h"
#include "constants.h"
#include "icore.h"
#include "configalertedialog.h"
#include <QtGui>
#include <QtCore>
using namespace Common;
using namespace Constants;
static inline Common::Settings *settings(){return Common::ICore::instance()->settings();}
configalertedialog::configalertedialog(QWidget * parent){
setupUi(this);
//setWindowFlags(Qt::WindowStaysOnTopHint);
label_4->setText("<html><body><font size = 3 color = ""red"">nombre\n d'ann&#233;es</font></body></html>");
label->setText("<html><body><font size = 3 color = ""red"">nombre de\nminutes</font></body></html>");
label_2->setText("<html><body><font size = 3 color = ""red"">nombre de\njours</font></body></html>");
label_3->setText("<html><body><font size = 3 color = ""red"">nombre de\nmois</font></body></html>");
label_5->setText("<html><body><font size = 3 color = ""red"">texte \nde l'alerte</font></body></html>");

label_4->setToolTip(trUtf8("On inscrit le chiffre correspondant au nombre d'années\nà l'issue desquelles on voudra voir apparaître l'alerte, ou 0"));
label->setToolTip(trUtf8("On inscrit le nombre de minutes\n à l'issue desquelles on voudra voir apparaître l'alerte, ou 0"));
label_2->setToolTip(trUtf8("On inscrit le nombre de jours\n à l'issue desquels on voudra voir apparaître l'alerte, ou 0"));
label_3->setToolTip(trUtf8("On inscrit le nombre de mois\n à l'issue desquels on voudra voir apparaître l'alerte, ou 0"));
label_5->setToolTip(trUtf8("On inscrit le texte qu'on voudra voir apparaître dans le menu des alertes,\net qui sera inscrite dans le dossier"));

lineEdit->setText("0");
lineEdit_2->setText("0");
lineEdit_3->setText("0");
lineEdit_4->setText("0");

QStringList listepourcombo;
QFile monfichier(settings()->userResourcesPath()+"/alertes.ini");
if(!monfichier.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur"),trUtf8("alertes.ini ne peut pas être ouvert !"),QMessageBox::Ok);
}
QTextStream eure(&monfichier);
while(!eure.atEnd()){
QString line = eure.readLine();
listepourcombo << ""+line+"";
}
comboBox->setEditable(1);
comboBox->setInsertPolicy(QComboBox::NoInsert);
comboBox->addItems(listepourcombo);

connect(pushButton,SIGNAL(pressed()),this,SLOT(fonctionenregistre()));
connect(pushButton_2,SIGNAL(pressed()),this,SLOT(close()));
connect(pushButton_3,SIGNAL(pressed()),this,SLOT(effacercombo()));

}

configalertedialog::~configalertedialog(){}

void configalertedialog::fonctionenregistre(){
QString texte = lineEdit_5->text();
QString minutes = lineEdit->text();
QString jours = lineEdit_2->text();
QString mois = lineEdit_3->text();
QString annees = lineEdit_4->text();
QString ligne = texte+"="+minutes+"-"+jours+"-"+mois+"-"+annees;

QStringList listepoursort;
QString alertesIni = settings()->userResourcesPath()+"/alertes.ini";
QFile myfile(alertesIni);
if(!myfile.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur1"),trUtf8("alertes.ini ne peut pas être ouvert !"),QMessageBox::Ok);
}
QTextStream riviere(&myfile);
while(!riviere.atEnd()){
QString line = riviere.readLine();
listepoursort << ""+line+"";
}
int value1 = listepoursort.size();
listepoursort << ""+ligne+"";
int value2 = listepoursort.size();
myfile.remove();
QFile myfile2(settings()->userResourcesPath()+"/alertes.ini");
if(!myfile2.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur2"),trUtf8("alertes.ini ne peut pas être ouvert !"),QMessageBox::Ok);
}
QTextStream riviere2(&myfile2);
listepoursort.sort();

for(int i = 0; i< listepoursort.size();i++){
riviere2 << ""+listepoursort[i]+"\n";}
listepoursort.clear();
if(value2 > value1){
label_7->setText(trUtf8("le nouveau texte d'alerte est inclus,relancez Alarmes pour mise à jour du widget."));
QTimer::singleShot(1800,this,SLOT(close()));
}
}

void configalertedialog::effacercombo(){
QString textechoisi = comboBox->currentText();
QStringList listeoff;
QStringList listecompare;
QFile myfileoff(settings()->userResourcesPath()+"/alertes.ini");
if(!myfileoff.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur1"),trUtf8("alertes.ini ne peut pas être ouvert !"),QMessageBox::Ok);
}
QTextStream riviereoff(&myfileoff);
while(!riviereoff.atEnd()){
QString line = riviereoff.readLine();
listecompare << ""+line+"";
if(!(line == textechoisi)){
listeoff << ""+line+"";
	}
	}
myfileoff.remove();
QFile myfileoff2(settings()->userResourcesPath()+"/alertes.ini");
if(!myfileoff2.open(QIODevice::ReadWrite | QIODevice::Text)){
QMessageBox::warning(0,tr("erreur1"),trUtf8("alertes.ini ne peut pas être ouvert !"),QMessageBox::Ok);
}
QTextStream riviereoff2(&myfileoff2);
for(int i = 0;i < listeoff.size();i ++){
riviereoff2 << ""+listeoff[i]+"\n";
		}
if(listecompare.size() > listeoff.size()){
label_7->setText(trUtf8("L'alerte a été effacée,relancez Alarmes pour la mise à jour du widget."));
QTimer::singleShot(1800,this,SLOT(close()));
	}
}
